第六天我們來學習C++中基本的運算式與運算子~
運算式是由運算元(operand)與運算子(operator)所組成,運算元可以是常數、變數甚至是函數,而運算子就是數學上的運算符號,如「+」、「-」、「*」、「/」等。
C++提供許多的運算子,這些運算子不但可以處理一般的數學運算外,還可以做邏輯運算、位置運算等、根據運算子所使用的類別,可分為設定、算數、關係、邏輯、遞增與遞減、條件與括號運算子等。
想讓變數在記憶體中儲存某個值時,可以使用設定運算子(=,assignment operator)
| 設定運算子 | 意義 | 
|---|---|
| = | 設定 | 
等號(=)在C++中並不是「等於」,而是「設定」的意思,如下列程式:
num = 18;    //將整數18設定給num存放
對於大部分的運算式而言,運算子的前後都會有運算元。有一種運算子很特別,稱為一元運算子(unary operator),他只需要一個運算元。如下列程式:
+63;   //表示正63
~b;    //表示取b的1補數
a=-b;  //表示負b的值設定給變數a存放
!a;    //a的NOT運算,若a為0,則!a為1,若a不為0,則!a為0
下表列出一元運算子的成員:
| 一元運算子 | 意義 | 
|---|---|
| + | 正號 | 
| - | 負號 | 
| ! | NOT,否 | 
| ~ | 取1的補數 | 
在數學上面經常會使用到算術運算子(mathematical opretor),下表列出他們的成員:
| 算數運算子 | 意義 | 
|---|---|
| + | 加法 | 
| - | 減法 | 
| * | 乘法 | 
| / | 除法 | 
| % | 取餘數 | 
關係運算子通常與邏輯有關,他會直接影響程式執行的流程,因此if敘述中常會使用到關係運算子,if敘述的格式如下:
if(條件判斷)
  敘述;
下表列出關係運算子的成員的成員:
| 關係運算子 | 意義 | 
|---|---|
| > | 大於 | 
| < | 小於 | 
| >= | 大於等於 | 
| <= | 小於等於 | 
| == | 等於 | 
| != | 不等於 | 
遞增與遞減運算子具有相當大的便利性,他們可以簡潔程式碼。下表列出遞增與遞減運算子的成員:
| 遞增與遞減運算子 | 意義 | 
|---|---|
| ++ | 遞增,變數值加1 | 
| -- | 遞減,變數值減1 | 
用下列程式碼舉例:
一般寫法
i=i+1;    //i加1後再設定給i存放
使用遞增運算子
i++;     //i加1後再設定給i存放,i++為簡潔寫法
C++還有一些寫法相當簡潔的方式,將算數運算子和設定運算子結合,成為新的運算子
例如下面幾個運算式,皆是簡潔的寫法:
a++;    //相當於a=a+1
b-=3;   //相當於b=b-3
b%=c;   //相當於b=b%c
在if敘述中也會看到邏輯運算子的蹤跡
(1)「&&」表示AND,且
(2)「||」表示OR,或
a>0 && b>0    //兩個運算元皆為真,運算結果才為真
a>0 || b>0    //兩個運算元只有一個為真,運算結果就為真
除了前面所述的內容外,括號()也是C++的運算,如下表所列:
| 括號運算子 | 意義 | 
|---|---|
| () | 提高括號中運算式中的優先順序 | 
今天的內容就先到這邊~